home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / julin105.zip / JULDEF.H < prev    next >
Text File  |  1992-04-16  |  2KB  |  66 lines

  1.  
  2.  
  3. /***************************************
  4.     definitions
  5. ***************************************/
  6.  
  7. #define QCENTDAYS    (365l * 400l + 100l - 3l)
  8.                     /* = 146097 = days in 4 centuries       */
  9. #define CENTDAYS    (365l * 100l + 24l)
  10.                     /* = 36524 = days in 1 non-leap century */
  11. #define QUADDAYS    (365l * 4l + 1l)
  12.                     /* = 1461 = days in leap quad           */
  13. #define YEARDAYS    365l
  14.                     /* = days in 1 non-leap year            */
  15. #define AVYRDAYS    (QCENTDAYS / 400.0)
  16.                     /* = 365.2425                            */
  17. #define MAXYY        50
  18.                     /* used to interpret 2 digit years    */
  19.  
  20. #define BADDATE        -1
  21. #define BADYEAR        -2
  22. #define BADMONTH    -3
  23. #define BADDAY        -4
  24. #define AUTODATE    0
  25.  
  26. #define    FALSE    0
  27. #define    TRUE    !FALSE
  28.  
  29.  
  30. /****************************************
  31.  
  32.     function prototypes and typedef
  33.  
  34. ****************************************/
  35.  
  36.  
  37. typedef struct gregorian
  38. {
  39.     int month, day, year;
  40. } GDATE;
  41.  
  42.  
  43. /* Gregorian to Julian */
  44. long   gregtojday(GDATE);        /* gregdate to julian day        */
  45. double gregtojear(GDATE);        /* gregdate to pseudoyear        */
  46. int       gregtoyday(GDATE);        /* gregdate to julian year day    */
  47.  
  48. /* Julian to Gregorian */
  49. GDATE  jdaytogreg(long);        /* julian day to gregdate        */
  50. GDATE  jdaytoyday(long);        /* julian day to year            */
  51. GDATE  ydaytogreg(int day,
  52.          int year);                /* yearday and year to grgedate */
  53. GDATE  jeartogreg(double jear);    /* pseudoyear to gregdate        */
  54.  
  55. /* input/output */
  56. GDATE  mmddyyyytogreg(char *str, int nearyear);
  57.                                 /* string to gregdate            */
  58. char   *gregtommddyyyy(char *str, GDATE gdate, int nearyear);
  59.                                 /* gredgate to string            */
  60. int    yytoyear(char *str, int nearyear);
  61.                                 /* translate 2 digit ascii year to int  */
  62.  
  63. /* miscellaneous */
  64. int       isleap(int year);        /* leap year or not                */
  65. int       dayofweek(long);            /* jday to day of week: 1 to 7    */
  66.